The goal of the project is to visualize of some of the statistics of the Lebron James career so far. Lebron James is reffered to as one of the best players in NBA history and has piled up an empressive stat line in his career so far.
import pandas as pd
import plotly.express as px
import plotly.graph_objs as go
import matplotlib.pyplot as plt
df_Playoff = pd.read_excel("PlayoffSeasonAverage.xlsx",skiprows=[1])
df_Season_avg = pd.read_excel("SeasonAverage.xlsx",skiprows=[1])
df_Season_team_avg = pd.read_excel("SeasonTeamAverage.xlsx",skiprows=[1])
df_Season_total = pd.read_excel("SeasonTotal.xlsx",skiprows=[1])
print ('Data read into a pandas dataframe!')
Data read into a pandas dataframe!
df_Playoff.head()
Season | Age | Tm | Lg | Pos | G | GS | MP | FG | FGA | ... | FT% | ORB | DRB | TRB | AST | STL | BLK | TOV | PF | PTS | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 2005-06 | 21 | CLE | NBA | SF | 13 | 13 | 46.5 | 11.2 | 23.6 | ... | 0.737 | 1.7 | 6.4 | 8.1 | 5.8 | 1.4 | 0.7 | 5.0 | 3.4 | 30.8 |
1 | 2006-07 | 22 | CLE | NBA | SF | 20 | 20 | 44.7 | 8.3 | 20.0 | ... | 0.755 | 1.3 | 6.8 | 8.1 | 8.0 | 1.7 | 0.5 | 3.3 | 2.0 | 25.1 |
2 | 2007-08 | 23 | CLE | NBA | SF | 13 | 13 | 42.5 | 8.7 | 21.2 | ... | 0.731 | 1.2 | 6.6 | 7.8 | 7.6 | 1.8 | 1.3 | 4.2 | 2.5 | 28.2 |
3 | 2008-09 | 24 | CLE | NBA | SF | 14 | 14 | 41.4 | 11.4 | 22.3 | ... | 0.749 | 1.4 | 7.8 | 9.1 | 7.3 | 1.6 | 0.9 | 2.7 | 2.1 | 35.3 |
4 | 2009-10 | 25 | CLE | NBA | SF | 11 | 11 | 41.8 | 9.6 | 19.2 | ... | 0.733 | 1.4 | 7.9 | 9.3 | 7.6 | 1.7 | 1.8 | 3.8 | 2.1 | 29.1 |
5 rows × 30 columns
df_Season_avg.head()
Season | Age | Tm | Lg | Pos | G | GS | MP | FG | FGA | ... | FT% | ORB | DRB | TRB | AST | STL | BLK | TOV | PF | PTS | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 2003-04 | 19 | CLE | NBA | SG | 79 | 79 | 39.5 | 7.9 | 18.9 | ... | 0.754 | 1.3 | 4.2 | 5.5 | 5.9 | 1.6 | 0.7 | 3.5 | 1.9 | 20.9 |
1 | 2004-05 | 20 | CLE | NBA | SF | 80 | 80 | 42.4 | 9.9 | 21.1 | ... | 0.750 | 1.4 | 6.0 | 7.4 | 7.2 | 2.2 | 0.7 | 3.3 | 1.8 | 27.2 |
2 | 2005-06 | 21 | CLE | NBA | SF | 79 | 79 | 42.5 | 11.1 | 23.1 | ... | 0.738 | 0.9 | 6.1 | 7.0 | 6.6 | 1.6 | 0.8 | 3.3 | 2.3 | 31.4 |
3 | 2006-07 | 22 | CLE | NBA | SF | 78 | 78 | 40.9 | 9.9 | 20.8 | ... | 0.698 | 1.1 | 5.7 | 6.7 | 6.0 | 1.6 | 0.7 | 3.2 | 2.2 | 27.3 |
4 | 2007-08 | 23 | CLE | NBA | SF | 75 | 74 | 40.4 | 10.6 | 21.9 | ... | 0.712 | 1.8 | 6.1 | 7.9 | 7.2 | 1.8 | 1.1 | 3.4 | 2.2 | 30.0 |
5 rows × 30 columns
df_Season_team_avg.head()
Season | Age | Tm | Lg | Pos | G | GS | MP | FG | FGA | ... | FT% | ORB | DRB | TRB | AST | STL | BLK | TOV | PF | PTS | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 11 seasons | NaN | CLE | NBA | NaN | 849 | 848 | 39.0 | 9.9 | 20.0 | ... | 0.733 | 1.2 | 6.1 | 7.3 | 7.3 | 1.6 | 0.8 | 3.5 | 1.9 | 27.2 |
1 | 4 seasons | NaN | MIA | NBA | NaN | 294 | 294 | 38.0 | 9.9 | 18.2 | ... | 0.758 | 1.2 | 6.4 | 7.6 | 6.7 | 1.7 | 0.7 | 3.4 | 1.7 | 26.9 |
2 | 4 seasons | NaN | LAL | NBA | NaN | 223 | 223 | 35.2 | 10.1 | 19.9 | ... | 0.701 | 1.0 | 7.1 | 8.0 | 8.2 | 1.2 | 0.7 | 3.7 | 1.8 | 27.0 |
3 rows × 30 columns
df_Season_total.head()
Season | Age | Tm | Lg | Pos | G | GS | MP | FG | FGA | ... | DRB | TRB | AST | STL | BLK | TOV | PF | PTS | Unnamed: 30 | Trp Dbl | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 2003-04 | 19 | CLE | NBA | SG | 79 | 79 | 3122 | 622 | 1492 | ... | 333 | 432 | 465 | 130 | 58 | 273 | 149 | 1654 | NaN | 0 |
1 | 2004-05 | 20 | CLE | NBA | SF | 80 | 80 | 3388 | 795 | 1684 | ... | 477 | 588 | 577 | 177 | 52 | 262 | 146 | 2175 | NaN | 4 |
2 | 2005-06 | 21 | CLE | NBA | SF | 79 | 79 | 3361 | 875 | 1823 | ... | 481 | 556 | 521 | 123 | 66 | 260 | 181 | 2478 | NaN | 5 |
3 | 2006-07 | 22 | CLE | NBA | SF | 78 | 78 | 3190 | 772 | 1621 | ... | 443 | 526 | 470 | 125 | 55 | 250 | 171 | 2132 | NaN | 1 |
4 | 2007-08 | 23 | CLE | NBA | SF | 75 | 74 | 3027 | 794 | 1642 | ... | 459 | 592 | 539 | 138 | 81 | 255 | 165 | 2250 | NaN | 7 |
5 rows × 32 columns
df_total_pts = df_Season_total.groupby(['Tm'],as_index=False).sum() #Using groupby function to create required pivot table
df_total_pts
Tm | Age | G | GS | MP | FG | FGA | FG% | 3P | 3PA | ... | DRB | TRB | AST | STL | BLK | TOV | PF | PTS | Unnamed: 30 | Trp Dbl | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | CLE | 280 | 849 | 848 | 33130 | 8369 | 17022 | 5.419 | 1251 | 3713 | ... | 5156 | 6190 | 6228 | 1376 | 695 | 2973 | 1618 | 23119 | 0.0 | 64 |
1 | LAL | 142 | 223 | 223 | 7841 | 2263 | 4442 | 2.040 | 524 | 1485 | ... | 1580 | 1795 | 1837 | 271 | 153 | 822 | 403 | 6024 | 0.0 | 32 |
2 | MIA | 110 | 294 | 294 | 11168 | 2911 | 5361 | 2.173 | 365 | 988 | ... | 1873 | 2225 | 1980 | 489 | 193 | 993 | 495 | 7919 | 0.0 | 9 |
3 rows × 29 columns
fig = px.histogram(df_total_pts, x="Tm",y="PTS",color="Tm",title="Total Points for Each Team")
fig.update_layout(yaxis_title="Total Points",xaxis_title="Team")
fig.show()
df_total_3pts = df_Season_total.groupby(['Season','Tm'],as_index=False).sum() #Using groupby function to create required pivot table
df_total_3pts
Season | Tm | Age | G | GS | MP | FG | FGA | FG% | 3P | ... | DRB | TRB | AST | STL | BLK | TOV | PF | PTS | Unnamed: 30 | Trp Dbl | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 2003-04 | CLE | 19 | 79 | 79 | 3122 | 622 | 1492 | 0.417 | 63 | ... | 333 | 432 | 465 | 130 | 58 | 273 | 149 | 1654 | 0.0 | 0 |
1 | 2004-05 | CLE | 20 | 80 | 80 | 3388 | 795 | 1684 | 0.472 | 108 | ... | 477 | 588 | 577 | 177 | 52 | 262 | 146 | 2175 | 0.0 | 4 |
2 | 2005-06 | CLE | 21 | 79 | 79 | 3361 | 875 | 1823 | 0.480 | 127 | ... | 481 | 556 | 521 | 123 | 66 | 260 | 181 | 2478 | 0.0 | 5 |
3 | 2006-07 | CLE | 22 | 78 | 78 | 3190 | 772 | 1621 | 0.476 | 99 | ... | 443 | 526 | 470 | 125 | 55 | 250 | 171 | 2132 | 0.0 | 1 |
4 | 2007-08 | CLE | 23 | 75 | 74 | 3027 | 794 | 1642 | 0.484 | 113 | ... | 459 | 592 | 539 | 138 | 81 | 255 | 165 | 2250 | 0.0 | 7 |
5 | 2008-09 | CLE | 24 | 81 | 81 | 3054 | 789 | 1613 | 0.489 | 132 | ... | 507 | 613 | 587 | 137 | 93 | 241 | 139 | 2304 | 0.0 | 7 |
6 | 2009-10 | CLE | 25 | 76 | 76 | 2966 | 768 | 1528 | 0.503 | 129 | ... | 483 | 554 | 651 | 125 | 77 | 261 | 119 | 2258 | 0.0 | 4 |
7 | 2010-11 | MIA | 26 | 79 | 79 | 3063 | 758 | 1485 | 0.510 | 92 | ... | 510 | 590 | 554 | 124 | 50 | 284 | 163 | 2111 | 0.0 | 4 |
8 | 2011-12 | MIA | 27 | 62 | 62 | 2326 | 621 | 1169 | 0.531 | 54 | ... | 398 | 492 | 387 | 115 | 50 | 213 | 96 | 1683 | 0.0 | 0 |
9 | 2012-13 | MIA | 28 | 76 | 76 | 2877 | 765 | 1354 | 0.565 | 103 | ... | 513 | 610 | 551 | 129 | 67 | 226 | 110 | 2036 | 0.0 | 4 |
10 | 2013-14 | MIA | 29 | 77 | 77 | 2902 | 767 | 1353 | 0.567 | 116 | ... | 452 | 533 | 488 | 121 | 26 | 270 | 126 | 2089 | 0.0 | 1 |
11 | 2014-15 | CLE | 30 | 69 | 69 | 2493 | 624 | 1279 | 0.488 | 120 | ... | 365 | 416 | 511 | 109 | 49 | 272 | 135 | 1743 | 0.0 | 2 |
12 | 2015-16 | CLE | 31 | 76 | 76 | 2709 | 737 | 1416 | 0.520 | 87 | ... | 454 | 565 | 514 | 104 | 49 | 249 | 143 | 1920 | 0.0 | 3 |
13 | 2016-17 | CLE | 32 | 74 | 74 | 2794 | 736 | 1344 | 0.548 | 124 | ... | 542 | 639 | 646 | 92 | 44 | 303 | 134 | 1954 | 0.0 | 13 |
14 | 2017-18 | CLE | 33 | 82 | 82 | 3026 | 857 | 1580 | 0.542 | 149 | ... | 612 | 709 | 747 | 116 | 71 | 347 | 136 | 2251 | 0.0 | 18 |
15 | 2018-19 | LAL | 34 | 55 | 55 | 1937 | 558 | 1095 | 0.510 | 111 | ... | 408 | 465 | 454 | 72 | 33 | 197 | 94 | 1505 | 0.0 | 8 |
16 | 2019-20 | LAL | 35 | 67 | 67 | 2316 | 643 | 1303 | 0.493 | 148 | ... | 459 | 525 | 684 | 78 | 36 | 261 | 118 | 1698 | 0.0 | 13 |
17 | 2020-21 | LAL | 36 | 45 | 45 | 1504 | 422 | 823 | 0.513 | 104 | ... | 317 | 346 | 350 | 48 | 25 | 168 | 70 | 1126 | 0.0 | 5 |
18 | 2021-22 | LAL | 37 | 56 | 56 | 2084 | 640 | 1221 | 0.524 | 161 | ... | 396 | 459 | 349 | 73 | 59 | 196 | 121 | 1695 | 0.0 | 6 |
19 rows × 30 columns
fig = go.Figure()
fig = px.scatter(df_total_3pts, x="3PA", y="3P", log_x=True,
hover_name= "Tm", hover_data=["Season"])
fig.update_layout(title="3 Pointers vs 3 Pointer Attempts",
xaxis_title="3 Point Attempts",
yaxis_title="3 Pointers")
fig.show()
Use SeasonAverage dataset for questions 3 and 4.
df_Season_avg.head()
Season | Age | Tm | Lg | Pos | G | GS | MP | FG | FGA | ... | FT% | ORB | DRB | TRB | AST | STL | BLK | TOV | PF | PTS | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 2003-04 | 19 | CLE | NBA | SG | 79 | 79 | 39.5 | 7.9 | 18.9 | ... | 0.754 | 1.3 | 4.2 | 5.5 | 5.9 | 1.6 | 0.7 | 3.5 | 1.9 | 20.9 |
1 | 2004-05 | 20 | CLE | NBA | SF | 80 | 80 | 42.4 | 9.9 | 21.1 | ... | 0.750 | 1.4 | 6.0 | 7.4 | 7.2 | 2.2 | 0.7 | 3.3 | 1.8 | 27.2 |
2 | 2005-06 | 21 | CLE | NBA | SF | 79 | 79 | 42.5 | 11.1 | 23.1 | ... | 0.738 | 0.9 | 6.1 | 7.0 | 6.6 | 1.6 | 0.8 | 3.3 | 2.3 | 31.4 |
3 | 2006-07 | 22 | CLE | NBA | SF | 78 | 78 | 40.9 | 9.9 | 20.8 | ... | 0.698 | 1.1 | 5.7 | 6.7 | 6.0 | 1.6 | 0.7 | 3.2 | 2.2 | 27.3 |
4 | 2007-08 | 23 | CLE | NBA | SF | 75 | 74 | 40.4 | 10.6 | 21.9 | ... | 0.712 | 1.8 | 6.1 | 7.9 | 7.2 | 1.8 | 1.1 | 3.4 | 2.2 | 30.0 |
5 rows × 30 columns
df_FG = df_Season_avg.groupby(['Season','Age','Tm'],as_index=False).mean() #Using groupby function to create required pivot table
df_FG
Season | Age | Tm | G | GS | MP | FG | FGA | FG% | 3P | ... | FT% | ORB | DRB | TRB | AST | STL | BLK | TOV | PF | PTS | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 2003-04 | 19 | CLE | 79.0 | 79.0 | 39.5 | 7.9 | 18.9 | 0.417 | 0.8 | ... | 0.754 | 1.3 | 4.2 | 5.5 | 5.9 | 1.6 | 0.7 | 3.5 | 1.9 | 20.9 |
1 | 2004-05 | 20 | CLE | 80.0 | 80.0 | 42.4 | 9.9 | 21.1 | 0.472 | 1.4 | ... | 0.750 | 1.4 | 6.0 | 7.4 | 7.2 | 2.2 | 0.7 | 3.3 | 1.8 | 27.2 |
2 | 2005-06 | 21 | CLE | 79.0 | 79.0 | 42.5 | 11.1 | 23.1 | 0.480 | 1.6 | ... | 0.738 | 0.9 | 6.1 | 7.0 | 6.6 | 1.6 | 0.8 | 3.3 | 2.3 | 31.4 |
3 | 2006-07 | 22 | CLE | 78.0 | 78.0 | 40.9 | 9.9 | 20.8 | 0.476 | 1.3 | ... | 0.698 | 1.1 | 5.7 | 6.7 | 6.0 | 1.6 | 0.7 | 3.2 | 2.2 | 27.3 |
4 | 2007-08 | 23 | CLE | 75.0 | 74.0 | 40.4 | 10.6 | 21.9 | 0.484 | 1.5 | ... | 0.712 | 1.8 | 6.1 | 7.9 | 7.2 | 1.8 | 1.1 | 3.4 | 2.2 | 30.0 |
5 | 2008-09 | 24 | CLE | 81.0 | 81.0 | 37.7 | 9.7 | 19.9 | 0.489 | 1.6 | ... | 0.780 | 1.3 | 6.3 | 7.6 | 7.2 | 1.7 | 1.1 | 3.0 | 1.7 | 28.4 |
6 | 2009-10 | 25 | CLE | 76.0 | 76.0 | 39.0 | 10.1 | 20.1 | 0.503 | 1.7 | ... | 0.767 | 0.9 | 6.4 | 7.3 | 8.6 | 1.6 | 1.0 | 3.4 | 1.6 | 29.7 |
7 | 2010-11 | 26 | MIA | 79.0 | 79.0 | 38.8 | 9.6 | 18.8 | 0.510 | 1.2 | ... | 0.759 | 1.0 | 6.5 | 7.5 | 7.0 | 1.6 | 0.6 | 3.6 | 2.1 | 26.7 |
8 | 2011-12 | 27 | MIA | 62.0 | 62.0 | 37.5 | 10.0 | 18.9 | 0.531 | 0.9 | ... | 0.771 | 1.5 | 6.4 | 7.9 | 6.2 | 1.9 | 0.8 | 3.4 | 1.5 | 27.1 |
9 | 2012-13 | 28 | MIA | 76.0 | 76.0 | 37.9 | 10.1 | 17.8 | 0.565 | 1.4 | ... | 0.753 | 1.3 | 6.8 | 8.0 | 7.3 | 1.7 | 0.9 | 3.0 | 1.4 | 26.8 |
10 | 2013-14 | 29 | MIA | 77.0 | 77.0 | 37.7 | 10.0 | 17.6 | 0.567 | 1.5 | ... | 0.750 | 1.1 | 5.9 | 6.9 | 6.3 | 1.6 | 0.3 | 3.5 | 1.6 | 27.1 |
11 | 2014-15 | 30 | CLE | 69.0 | 69.0 | 36.1 | 9.0 | 18.5 | 0.488 | 1.7 | ... | 0.710 | 0.7 | 5.3 | 6.0 | 7.4 | 1.6 | 0.7 | 3.9 | 2.0 | 25.3 |
12 | 2015-16 | 31 | CLE | 76.0 | 76.0 | 35.6 | 9.7 | 18.6 | 0.520 | 1.1 | ... | 0.731 | 1.5 | 6.0 | 7.4 | 6.8 | 1.4 | 0.6 | 3.3 | 1.9 | 25.3 |
13 | 2016-17 | 32 | CLE | 74.0 | 74.0 | 37.8 | 9.9 | 18.2 | 0.548 | 1.7 | ... | 0.674 | 1.3 | 7.3 | 8.6 | 8.7 | 1.2 | 0.6 | 4.1 | 1.8 | 26.4 |
14 | 2017-18 | 33 | CLE | 82.0 | 82.0 | 36.9 | 10.5 | 19.3 | 0.542 | 1.8 | ... | 0.731 | 1.2 | 7.5 | 8.6 | 9.1 | 1.4 | 0.9 | 4.2 | 1.7 | 27.5 |
15 | 2018-19 | 34 | LAL | 55.0 | 55.0 | 35.2 | 10.1 | 19.9 | 0.510 | 2.0 | ... | 0.665 | 1.0 | 7.4 | 8.5 | 8.3 | 1.3 | 0.6 | 3.6 | 1.7 | 27.4 |
16 | 2019-20 | 35 | LAL | 67.0 | 67.0 | 34.6 | 9.6 | 19.4 | 0.493 | 2.2 | ... | 0.693 | 1.0 | 6.9 | 7.8 | 10.2 | 1.2 | 0.5 | 3.9 | 1.8 | 25.3 |
17 | 2020-21 | 36 | LAL | 45.0 | 45.0 | 33.4 | 9.4 | 18.3 | 0.513 | 2.3 | ... | 0.698 | 0.6 | 7.0 | 7.7 | 7.8 | 1.1 | 0.6 | 3.7 | 1.6 | 25.0 |
18 | 2021-22 | 37 | LAL | 56.0 | 56.0 | 37.2 | 11.4 | 21.8 | 0.524 | 2.9 | ... | 0.756 | 1.1 | 7.1 | 8.2 | 6.2 | 1.3 | 1.1 | 3.5 | 2.2 | 30.3 |
19 rows × 28 columns
fig = go.Figure()
fig = px.scatter(df_FG, x="Age", y="FG%", log_x=True,
hover_name= "Tm", hover_data=["Season"])
fig.update_layout(title="Average Field Goal % according to Age",
xaxis_title="Field Goal %",
yaxis_title="Age")
fig.data[0].marker.color = "blue"
fig.show()
fig = go.Figure()
fig = px.line(df_FG, x="Season", y="PTS")
fig.update_layout(title="Average Points Scored Per Season",
xaxis_title="Season",
yaxis_title="Avg Points")
fig.data[0].line.color = "red"
fig.update_xaxes(type='category')
fig.show()
Use PlayoffSeasonAverage dataset for questions 5 and 6.
df_Playoff.head()
Season | Age | Tm | Lg | Pos | G | GS | MP | FG | FGA | ... | FT% | ORB | DRB | TRB | AST | STL | BLK | TOV | PF | PTS | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 2005-06 | 21 | CLE | NBA | SF | 13 | 13 | 46.5 | 11.2 | 23.6 | ... | 0.737 | 1.7 | 6.4 | 8.1 | 5.8 | 1.4 | 0.7 | 5.0 | 3.4 | 30.8 |
1 | 2006-07 | 22 | CLE | NBA | SF | 20 | 20 | 44.7 | 8.3 | 20.0 | ... | 0.755 | 1.3 | 6.8 | 8.1 | 8.0 | 1.7 | 0.5 | 3.3 | 2.0 | 25.1 |
2 | 2007-08 | 23 | CLE | NBA | SF | 13 | 13 | 42.5 | 8.7 | 21.2 | ... | 0.731 | 1.2 | 6.6 | 7.8 | 7.6 | 1.8 | 1.3 | 4.2 | 2.5 | 28.2 |
3 | 2008-09 | 24 | CLE | NBA | SF | 14 | 14 | 41.4 | 11.4 | 22.3 | ... | 0.749 | 1.4 | 7.8 | 9.1 | 7.3 | 1.6 | 0.9 | 2.7 | 2.1 | 35.3 |
4 | 2009-10 | 25 | CLE | NBA | SF | 11 | 11 | 41.8 | 9.6 | 19.2 | ... | 0.733 | 1.4 | 7.9 | 9.3 | 7.6 | 1.7 | 1.8 | 3.8 | 2.1 | 29.1 |
5 rows × 30 columns
df_avg_playoff = df_Playoff.groupby(['Season','Age','Tm'],as_index=False).mean() #Using groupby function to create required pivot table
df_avg_playoff
Season | Age | Tm | G | GS | MP | FG | FGA | FG% | 3P | ... | FT% | ORB | DRB | TRB | AST | STL | BLK | TOV | PF | PTS | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 2005-06 | 21 | CLE | 13.0 | 13.0 | 46.5 | 11.2 | 23.6 | 0.476 | 1.6 | ... | 0.737 | 1.7 | 6.4 | 8.1 | 5.8 | 1.4 | 0.7 | 5.0 | 3.4 | 30.8 |
1 | 2006-07 | 22 | CLE | 20.0 | 20.0 | 44.7 | 8.3 | 20.0 | 0.416 | 1.1 | ... | 0.755 | 1.3 | 6.8 | 8.1 | 8.0 | 1.7 | 0.5 | 3.3 | 2.0 | 25.1 |
2 | 2007-08 | 23 | CLE | 13.0 | 13.0 | 42.5 | 8.7 | 21.2 | 0.411 | 1.4 | ... | 0.731 | 1.2 | 6.6 | 7.8 | 7.6 | 1.8 | 1.3 | 4.2 | 2.5 | 28.2 |
3 | 2008-09 | 24 | CLE | 14.0 | 14.0 | 41.4 | 11.4 | 22.3 | 0.510 | 1.9 | ... | 0.749 | 1.4 | 7.8 | 9.1 | 7.3 | 1.6 | 0.9 | 2.7 | 2.1 | 35.3 |
4 | 2009-10 | 25 | CLE | 11.0 | 11.0 | 41.8 | 9.6 | 19.2 | 0.502 | 1.8 | ... | 0.733 | 1.4 | 7.9 | 9.3 | 7.6 | 1.7 | 1.8 | 3.8 | 2.1 | 29.1 |
5 | 2010-11 | 26 | MIA | 21.0 | 21.0 | 43.9 | 8.3 | 17.8 | 0.466 | 1.4 | ... | 0.763 | 1.6 | 6.8 | 8.4 | 5.9 | 1.7 | 1.2 | 3.1 | 2.7 | 23.7 |
6 | 2011-12 | 27 | MIA | 23.0 | 23.0 | 42.7 | 10.9 | 21.8 | 0.500 | 1.0 | ... | 0.739 | 2.3 | 7.4 | 9.7 | 5.6 | 1.9 | 0.7 | 3.5 | 2.0 | 30.3 |
7 | 2012-13 | 28 | MIA | 23.0 | 23.0 | 41.7 | 9.2 | 18.8 | 0.491 | 1.6 | ... | 0.777 | 1.6 | 6.8 | 8.4 | 6.6 | 1.8 | 0.8 | 3.0 | 1.9 | 25.9 |
8 | 2013-14 | 29 | MIA | 20.0 | 20.0 | 38.2 | 9.6 | 17.0 | 0.565 | 1.8 | ... | 0.806 | 0.7 | 6.4 | 7.1 | 4.8 | 1.8 | 0.6 | 3.1 | 2.3 | 27.4 |
9 | 2014-15 | 30 | CLE | 20.0 | 20.0 | 42.2 | 11.4 | 27.2 | 0.417 | 1.3 | ... | 0.731 | 1.9 | 9.5 | 11.3 | 8.5 | 1.7 | 1.1 | 4.1 | 2.9 | 30.1 |
10 | 2015-16 | 31 | CLE | 21.0 | 21.0 | 39.1 | 10.4 | 19.9 | 0.525 | 1.5 | ... | 0.661 | 2.0 | 7.5 | 9.5 | 7.6 | 2.3 | 1.3 | 3.6 | 2.6 | 26.3 |
11 | 2016-17 | 32 | CLE | 18.0 | 18.0 | 41.3 | 12.1 | 21.3 | 0.565 | 2.4 | ... | 0.698 | 1.1 | 8.1 | 9.1 | 7.8 | 1.9 | 1.3 | 4.0 | 2.4 | 32.8 |
12 | 2017-18 | 33 | CLE | 22.0 | 22.0 | 41.9 | 12.5 | 23.2 | 0.539 | 1.8 | ... | 0.746 | 1.4 | 7.7 | 9.1 | 9.0 | 1.4 | 1.0 | 4.3 | 2.4 | 34.0 |
13 | 2019-20 | 35 | LAL | 21.0 | 21.0 | 36.3 | 10.2 | 18.2 | 0.560 | 2.1 | ... | 0.720 | 1.3 | 9.4 | 10.8 | 8.8 | 1.2 | 0.9 | 4.0 | 1.9 | 27.6 |
14 | 2020-21 | 36 | LAL | 6.0 | 6.0 | 37.3 | 9.0 | 19.0 | 0.474 | 3.0 | ... | 0.609 | 1.2 | 6.0 | 7.2 | 8.0 | 1.5 | 0.3 | 4.2 | 1.2 | 23.3 |
15 rows × 28 columns
fig = px.scatter(df_avg_playoff, x="AST", y="PTS",size="G", color="Tm",hover_name="Season",log_x=True,size_max=60,title="Points Scored In Playoff Seasons")
fig.show()
championships = ['2011-12','2012-13', '2015-16', '2019-20']
df_championship = df_avg_playoff[df_avg_playoff.Season.isin(championships)]
df_championship = df_championship.astype({"Season": str})
df_championship
Season | Age | Tm | G | GS | MP | FG | FGA | FG% | 3P | ... | FT% | ORB | DRB | TRB | AST | STL | BLK | TOV | PF | PTS | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
6 | 2011-12 | 27 | MIA | 23.0 | 23.0 | 42.7 | 10.9 | 21.8 | 0.500 | 1.0 | ... | 0.739 | 2.3 | 7.4 | 9.7 | 5.6 | 1.9 | 0.7 | 3.5 | 2.0 | 30.3 |
7 | 2012-13 | 28 | MIA | 23.0 | 23.0 | 41.7 | 9.2 | 18.8 | 0.491 | 1.6 | ... | 0.777 | 1.6 | 6.8 | 8.4 | 6.6 | 1.8 | 0.8 | 3.0 | 1.9 | 25.9 |
10 | 2015-16 | 31 | CLE | 21.0 | 21.0 | 39.1 | 10.4 | 19.9 | 0.525 | 1.5 | ... | 0.661 | 2.0 | 7.5 | 9.5 | 7.6 | 2.3 | 1.3 | 3.6 | 2.6 | 26.3 |
13 | 2019-20 | 35 | LAL | 21.0 | 21.0 | 36.3 | 10.2 | 18.2 | 0.560 | 2.1 | ... | 0.720 | 1.3 | 9.4 | 10.8 | 8.8 | 1.2 | 0.9 | 4.0 | 1.9 | 27.6 |
4 rows × 28 columns
import plotly
fig = px.bar(df_championship, x="Season",y="MP",color="Tm",title="Avg Minutes Played in Winning Playoffs")
fig.update_layout(yaxis_title="Avg Minutes",xaxis_title="Season")
fig.update_xaxes(type='category')
fig.show()
Use SeasonTeamAverage dataset for question 7.
df_Season_team_avg.head()
Season | Age | Tm | Lg | Pos | G | GS | MP | FG | FGA | ... | FT% | ORB | DRB | TRB | AST | STL | BLK | TOV | PF | PTS | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 11 seasons | NaN | CLE | NBA | NaN | 849 | 848 | 39.0 | 9.9 | 20.0 | ... | 0.733 | 1.2 | 6.1 | 7.3 | 7.3 | 1.6 | 0.8 | 3.5 | 1.9 | 27.2 |
1 | 4 seasons | NaN | MIA | NBA | NaN | 294 | 294 | 38.0 | 9.9 | 18.2 | ... | 0.758 | 1.2 | 6.4 | 7.6 | 6.7 | 1.7 | 0.7 | 3.4 | 1.7 | 26.9 |
2 | 4 seasons | NaN | LAL | NBA | NaN | 223 | 223 | 35.2 | 10.1 | 19.9 | ... | 0.701 | 1.0 | 7.1 | 8.0 | 8.2 | 1.2 | 0.7 | 3.7 | 1.8 | 27.0 |
3 rows × 30 columns
fig = px.bar(df_Season_team_avg, x="Tm",y="PTS",color="Tm",title="Avg Number of Points Scored For Teams Played For")
fig.update_layout(yaxis_title="Avg Points",xaxis_title="Team")
fig.update_xaxes(type='category')
fig.show()